GDK W32: Switch to GdkCairoContext
authorРуслан Ижбулатов <lrn1986@gmail.com>
Tue, 24 Apr 2018 15:14:23 +0000 (15:14 +0000)
committerBenjamin Otte <otte@redhat.com>
Tue, 24 Apr 2018 21:24:55 +0000 (23:24 +0200)
commit7002f08cc1515de0eb3a117296dd25d98db2dcd2
treee0fb326b11eabfef37363e6a9a1fe3acc899d4ee
parent8c5d31d11d66d432faf954891acdbc16e01e7fbd
GDK W32: Switch to GdkCairoContext

* Remove DC refcounting (we trust GDK to always do
  begin_frame/end_frame calls in pairs)
* Now that there's no GDK-provided double-buffer up the stack,
  double-buffering is implemented here
  (though it's disabled by default - in my tests it didn't provide
   any visual improvements, but did decrease performance).
* For some reason delaying window resizes until the point where
  we need to blit the double-buffer into the window leads
  to visual glitches, so doulbe-buffered windows are resized
  in begin_frame, same as non-double-buffered ones.
* New code to clear the paint region, for all drawing modes.
  Hopefully, it isn't duplicated anywhere up the stack.
* GL has its own context now, so remove any GL-related comments.
* Layered windows are still used (because cairo actually works
  better with them)
* A bit more code re-use for layered windows
* Some functions that were local to gdksurface-win32.c are made
  usable for the whole backend
* Drag-indicator drawing is temporarily commented out to match
  a similar change in X11 backend
gdk/win32/gdkcairocontext-win32.c
gdk/win32/gdkcairocontext-win32.h
gdk/win32/gdkdrag-win32.c
gdk/win32/gdkevents-win32.c
gdk/win32/gdkprivate-win32.h
gdk/win32/gdksurface-win32.c
gdk/win32/gdksurface-win32.h